/*****************************************************************************/
/*                                                                           */
/*    Domino Operation System Driver Module                                  */
/*                                                                           */
/*    Copyright (C) 2008 Laszlo Arvai                                        */
/*                                                                           */
/*    ------------------------------------------------------------------     */
/*    drvMemoryAccess - Memory access routines (PIC32)                       */
/*****************************************************************************/
#include <krnlTypes.h>
#include "drvMemoryAccess.H"
#include "sysSettings.h"

///////////////////////////////////////////////////////////////////////////////
// Module local variables
extern unsigned char g_resource_file[];

///////////////////////////////////////////////////////////////////////////////
// Init ROM Access
void krnlInitMemoryAccess(void)
{
}

///////////////////////////////////////////////////////////////////////////////
// Read byte from ROM
dosByte dosROMReadByte( int in_address )
{
	return g_resource_file[in_address];
}

///////////////////////////////////////////////////////////////////////////////
// Read word from ROM
dosWord dosROMReadWord( int in_address )
{
	return g_resource_file[in_address] + ((g_resource_file[in_address+1]) << 8);
}

///////////////////////////////////////////////////////////////////////////////
// Read double word from ROM
dosDWord dosROMReadDWord( int in_address )
{
	return ((dosDWord)g_resource_file[in_address]) + 
					(((dosDWord)g_resource_file[in_address+1]) << 8) +
					(((dosDWord)g_resource_file[in_address+2]) << 16) +
					(((dosDWord)g_resource_file[in_address+3]) << 24);
}

///////////////////////////////////////////////////////////////////////////////
// Read MSB first word from ROM
dosWord dosROMReadReverseWord( int in_address )
{
	return ((g_resource_file[in_address]) << 8) + g_resource_file[in_address+1];
}

